#ifndef __TEXT_H__
#define __TEXT_H__

#include "ui/uiobject.h"
#include "graphics/bitmap.h"

namespace MiniUI
{

class Text : public UIObject,
             public Creator<Text>,
             public TypeObject<Text>
{
public:
    friend class Creator<Text>;
protected:
    Text();
    virtual ~Text();
public:
    bool RenderTo(Graphics& graphics, const Type::MiniRect& rcRender, const uint8 blendValue);
    void SetValue(const std::string& value);
    std::string GetValue();
    void SetMultiline(bool bMultiline);
    bool GetMultiline();
    void SetFontSize(int fontSize);
    int GetFontSize();
    void SetFontStyle(uint fontStyle);
    uint GetFontStyle();
    void SetTextAlign(uint align);
    uint GetTextAlign();
    void SetFontColor(const Type::MiniARGB& fontColor);
    Type::MiniARGB GetFontColor();
    void SetFontFaceName(const std::string& value);
    std::string GetFontFaceName();
private:
    bool m_bMultiline;
    int m_fontSize;
    uint m_fontStyle;
    uint m_align;
    Type::MiniARGB m_fontColor;
    std::string m_strFontFaceName;
    std::string m_strText;
};

}

#endif